home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / public / xcdplayer / leds.c < prev    next >
Text File  |  1994-08-01  |  3KB  |  117 lines

  1. /*
  2.  * Copyright (C) 1990 Regents of the University of California.
  3.  *
  4.  * Permission to use, copy, modify, distribute, and sell this software and
  5.  * its documentation for any purpose is hereby granted without fee,
  6.  * provided that the above copyright notice appear in all copies and that
  7.  * both that copyright notice and this permission notice appear in
  8.  * supporting documentation, and that the name of the University of
  9.  * California not be used in advertising or publicity pertaining to
  10.  * distribution of the software without specific, written prior
  11.  * permission.  the University of California makes no representations
  12.  * about the suitability of this software for any purpose.  It is provided
  13.  * "as is" without express or implied warranty.
  14.  */
  15.  
  16. # include <X11/Intrinsic.h>
  17. # include <X11/StringDefs.h>
  18. # include <X11/Xaw/Label.h>
  19.  
  20. # include "cdrom_globs.h"
  21.  
  22. # include "circle0a.xbm"
  23. # include "circle0b.xbm"
  24. # include "circle0c.xbm"
  25. # include "circle0d.xbm"
  26. # include "circle0e.xbm"
  27. # include "circle0f.xbm"
  28. # include "circle0g.xbm"
  29. # include "circle0h.xbm"
  30. # include "circle00.xbm"
  31.  
  32. static Widget    leds_label_widget;
  33.  
  34. # define NUM_LEDS    8
  35.  
  36. static Pixmap    leds_pixmaps[NUM_LEDS];
  37. static Pixmap    leds_pixmap;
  38.  
  39. void
  40. leds_update(Direction) 
  41. int    Direction;
  42. {
  43.     static int    ctr = 1;
  44.     Arg        args[1];
  45.     Pixmap        leds;
  46.  
  47.         
  48.     if (Direction == BACKWARDS)
  49.         leds = leds_pixmaps[(ctr += NUM_LEDS - 1) % NUM_LEDS];
  50.     else
  51.         leds = leds_pixmaps[ctr++ % NUM_LEDS];
  52.  
  53.     XtSetArg(args[0], XtNbitmap, (XtArgVal) leds);
  54.     XtSetValues(leds_label_widget, args, 1);
  55. }
  56.  
  57. void
  58. leds_stop() {
  59.     Arg        args[1];
  60.  
  61.     XtSetArg(args[0], XtNbitmap, (XtArgVal) leds_pixmap);
  62.     XtSetValues(leds_label_widget, args, 1);
  63. }
  64.  
  65. void
  66. leds_label_setup(parent_widget)
  67.     Widget        parent_widget;
  68. {
  69.     Arg        args[1];
  70.  
  71.     leds_label_widget = XtCreateManagedWidget("ledsLabel",
  72.                           labelWidgetClass,
  73.                           parent_widget,
  74.                           (ArgList) NULL, 0);
  75.  
  76.     leds_pixmaps[0] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  77.                         rootwin(leds_label_widget),
  78.                         circle0a_bits,
  79.                         circle0a_width, circle0a_height);
  80.     leds_pixmaps[1] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  81.                         rootwin(leds_label_widget),
  82.                         circle0b_bits,
  83.                         circle0b_width, circle0b_height);
  84.     leds_pixmaps[2] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  85.                         rootwin(leds_label_widget),
  86.                         circle0c_bits,
  87.                         circle0c_width, circle0c_height);
  88.     leds_pixmaps[3] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  89.                         rootwin(leds_label_widget),
  90.                         circle0d_bits,
  91.                         circle0d_width, circle0d_height);
  92.     leds_pixmaps[4] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  93.                         rootwin(leds_label_widget),
  94.                         circle0e_bits,
  95.                         circle0e_width, circle0e_height);
  96.     leds_pixmaps[5] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  97.                         rootwin(leds_label_widget),
  98.                         circle0f_bits,
  99.                         circle0f_width, circle0f_height);
  100.     leds_pixmaps[6] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  101.                         rootwin(leds_label_widget),
  102.                         circle0g_bits,
  103.                         circle0g_width, circle0g_height);
  104.     leds_pixmaps[7] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  105.                         rootwin(leds_label_widget),
  106.                         circle0h_bits,
  107.                         circle0h_width, circle0h_height);
  108.  
  109.     leds_pixmap = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  110.                          rootwin(leds_label_widget),
  111.                          circle00_bits,
  112.                          circle00_width, circle00_height);
  113.  
  114.     XtSetArg(args[0], XtNbitmap, (XtArgVal) leds_pixmap);
  115.     XtSetValues(leds_label_widget, args, 1);
  116. }
  117.